package com.koron.css2.clientCenter.mapper;

import com.koron.css2.clientCenter.bean.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
/**
 * 开户,tableType:1为正式表，2为临时表，3为历史表
 * @author zheny
 *
 */
public interface OpenUserMapper {
	/**
	 * 开户初始化列表
	 * @param bean
	 * @return
	 */
	public List<OpenUserListBean> openUserList(OpenUserQueryBean bean);
	/**
	 * 根据Id查询开户记录信息
	 * @param id
	 * @return
	 */
	public UserOpenBean getUserOpenInfoById(String id);
	/**
	 * 根据Id查询开户详情记录信息
	 * @param id
	 * @return
	 */
	public List<UserOpenBean> getUserOpenTempInfoById(String id);
	/**
	 * 根据Id查询详情列表
	 * @param id
	 * @return
	 */
	public List<OpenUserDetailListBean> getUserOpenListInfoById(String id);
	/**
	 * 列表详情id
	 * @param id
	 * @return
	 */
	public UserOpenBean getUserOpenListInfoByDetailId(@Param("id")String id);
	/**
	 * 列表详情id
	 * @param id
	 * @return
	 */
	public Integer deleteDetailById(@Param("id")String id);
	/**
	 * 修改单据与详情列表关联
	 * @param id
	 * @return
	 */
	public int updateDetail(@Param("list")List<String> list,@Param("id")String id);
	/**
	 * 添加开户记录信息
	 * @param bean
	 * @return
	 */
	public Integer userOpenAdd(UserOpenBean bean);
	/**
	 * 添加开户记录附表信息
	 * @param bean
	 * @return
	 */
	public Integer userOpenTempAdd(UserOpenBean bean);
	/**
	 * 添加开户记录附表信息
	 * @param bean
	 * @return
	 */
	public Integer userOpenTempAddList(@Param("list")List<UserOpenBean> list);
	/**
	 * 立户添加开户记录信息
	 * @return
	 */
	public Integer pjUserOpenAdd(UserOpenBean bean);

	/**
     * 删除开户记录信息
     * @param id
     * @return
     */
	public Integer userOpenRecordDelete(String id);	
	/**
     * 删除开户记录信息
     * @param id
     * @return
     */
	public Integer userOpenRecordDeleteByPjBillNo(String pjInstallBillNo);	
	/**
	 * 插入批量开户的错误信息
	 */
	public Integer insertOpenImportError(@Param("list")List<Map<String, String>> list);
	/**
	 * 清空错误信息表
	 */
	public Integer DeleteImportError();
	/**
	 * 导入错误数据列表
	 */
	public List<OpenUserErrorExportBean> getOpenUserImportErrorMsg();
	/**
	 * 开户保存时校验必填项
	 * 
	 */
	public List<CheckOpenItem> checkItemNull(@Param("list")List<String> list);
}
